1. Field of the Invention
The present invention relates to a color management system for dynamically generating, based on provided color measurement data, forward and inverse transformation look-up tables for transforming color image data between device-dependent and device-independent color spaces.
2. Description of the Related Art
Typically, color management systems rely on predetermined look-up tables for the conversion of color image data between device-dependent and device-independent color spaces. Such predetermined look-up tables are often created by the developer of a color management module for a given color device, such as a printer. Accordingly, a user is generally unable to modify them or update them if the color characteristics of the color device are different from, or have changed from, the representation of the color device by the look-up tables.
In order to generate a forward look-up table for converting from device-dependent to device-independent color space, an IT8.7/3 target containing CMYK patches is widely used in the art. The CMYK patches consist of sampling of the CMYK space in a well-defined manner so that a rectangular grid (with non-uniform spacing in C, M, Y and K) is formed. Each patch is then measured with a calorimeter or spectrophotometer. The measurements, which are typically in CIEXYZ values, then form a Look-Up Table (LUT), with which an empirical model of the printer can be built using an interpolation method of one's choice, resulting in the forward look-up table.
However, the inversion of the printer model to generate an inverse look-up table for converting from device-independent to device-dependent color space presents more difficulties. Given an input color in CIELAB or more generally, a color appearance space, there is a question of whether this color is within the printer gamut. There is also the issue regarding the arrangement of points in the color appearance space. While the CMYK values can be arranged to fall on a rectangular grid, as is done in the IT8.7/3 target, the same cannot be said of the resulting printed colors as they are situated in the color appearance space. In general, they are scattered in the color appearance space with no particular pattern.
In this regard, there are generally two known approaches to the inversion problem regarding scattered points. One approach is to use a geometric subdivision of the printer gamut using elementary 3-dimensional solids, such as tetrahedra. A subdivision of the printer gamut in the device-independent (color appearance) space can be induced from the corresponding subdivision of the device-dependent (CMYK) space. This approach has the advantage of computational simplicity. In the case of a tetrahedron, only four points are used in an interpolation. On the other hand, the result depends heavily on a just few points, which means that a measurement error will have a significant deleterious effect on the result. In addition, the interpolant also tends to be not very smooth because of the low number of points involved.
The second known approach does not assume any subdivision at all, but is instead based on the technique of scattered data interpolation. A classical example is the technique of Shepard interpolation, or inverse weighted method. In this method, several points surrounding the input point are chosen and each assigned a weight, usually inversely proportional to the distance, and the interpolant is taken as the weighted average of the neighboring points. In this approach, the choice of neighboring points is paramount to performance of the result. While too few neighboring points would render the interpolant inaccurate and non-smooth, too many points would impose a high computational cost, as the weights are typically non-linear functions and costly to compute, thereby rendering the second approach less feasible in a dynamic, run-time environment.